export function requestWithToken(options) {
  return new Promise((resolve, reject) => {
    const token = uni.getStorageSync('token'); // 获取 token

    // 如果没有 token，则不发送请求
    if (!token) {
      uni.showToast({
        title: '未获取到token，请重新登录',
        icon: 'none',
      });
      reject(new Error('未获取到token'));  // 返回 reject
      return;
    }

    // 拼接查询参数
    let urlWithParams = options.url;
    if (options.params) {
      const queryParams = new URLSearchParams(options.params).toString();
      urlWithParams = `${options.url}?${queryParams}`;
    }

    // 发起请求，带上 token
    uni.request({
      url: urlWithParams,  // 使用拼接好的 URL
      method: options.method,
      header: {
        ...options.header,  // 保持原有的请求头
        token: token         // 直接带上 token
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res);  // 请求成功，返回数据
        } else {
          reject(new Error('请求失败'));  // 请求失败，reject
		  // 跳转到登录页面
		  uni.navigateTo({
		    url: '/pages/login/login',
		  });
        }
      },
      fail: (err) => {
        // 请求失败
        if (err.statusCode === 401) {
          uni.showToast({
            title: '无效的token，请重新登录',
            icon: 'none',
          });
          // 跳转到登录页面
          uni.navigateTo({
            url: '/pages/login/login',
          });
        }
        reject(err);  // 返回 reject
      },
    });
  });
}